package com.zhangmeng.tools.music.qq;

import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * @author : 芊芊墨客
 * @version : 1.0
 * @date : 2023-04-21 17:17
 */
@Data
public class QQMusic {

    public Integer code;
    public Long ts;
    public Long startTs;
    public String traceid;
    public Req req;

    @Data
    public static class Action {

        public Integer alert;
        public Integer icon2;
        public Integer icons;
        public Integer msgdown;
        public Integer msgfav;
        public Integer msgid;
        public Integer msgpay;
        public Integer msgshare;
        public Integer _switch;
        public Integer switch2;
    }

    @Data
    public static class Action__1 {

        public Integer alert;
        public Integer icon2;
        public Integer icons;
        public Integer msgdown;
        public Integer msgfav;
        public Integer msgid;
        public Integer msgpay;
        public Integer msgshare;
        public Integer _switch;
        public Integer switch2;
    }


    public class Album {

        public List<Object> list = new ArrayList<Object>();
        private final static long serialVersionUID = -2908779731377838151L;

    }

    @Data
    public static class AlbumList {
        public List<Item> items = new ArrayList<Item>();
    }

    @Data
    public static class Album__1 {
        public Integer id;
        public String mid;
        public String name;
        public String pmid;
        public String subtitle;
        public String timePublic;
        public String title;
    }

    @Data
    public class Album__2 {

        public Integer id;
        public String mid;
        public String name;
        public String pmid;
        public String subtitle;
        public String timePublic;
        public String title;

    }

    @Data
    public static class Body {

        public Album album;
        public Gedantip gedantip;
        public Mv mv;
        public List<Qc> qc = new ArrayList<Qc>();
        public Singer singer;
        public Song song;
        public Songlist songlist;
        public User user;
        public Zhida zhida;
    }

    @Data
    public class CustomInfo {

        public String albumNum;
        public String extraDesc;
        public String iconType;
        public String isFollow;
        public String mid;
        public String mvNum;
        public String parentIds;
        public String songNum;
        public String tabId;
    }

    @Data
    public static class ResData {

        public Body body;
        public Integer code;
        public String feedbackURL;
        public Meta meta;
        public Integer ver;
    }

    @Data
    public class File {

        public Integer b30s;
        public Integer e30s;
        public Integer hiresBitdepth;
        public Integer hiresSample;
        public String mediaMid;
        public Integer size128mp3;
        public Integer size192aac;
        public Integer size192ogg;
        public Integer size24aac;
        public Integer size320mp3;
        public List<Object> size360ra = new ArrayList<Object>();
        public Integer size48aac;
        public Integer size96aac;
        public Integer size96ogg;
        public Integer sizeApe;
        public Integer sizeDolby;
        public Integer sizeDts;
        public Integer sizeFlac;
        public Integer sizeHires;
        public List<Integer> sizeNew = new ArrayList<Integer>();
        public Integer sizeTry;
        public Integer tryBegin;
        public Integer tryEnd;
        public String url;

    }


    public class File__1 {

        public Integer b30s;
        public Integer e30s;
        public Integer hiresBitdepth;
        public Integer hiresSample;
        public String mediaMid;
        public Integer size128mp3;
        public Integer size192aac;
        public Integer size192ogg;
        public Integer size24aac;
        public Integer size320mp3;
        public List<Object> size360ra = new ArrayList<Object>();
        public Integer size48aac;
        public Integer size96aac;
        public Integer size96ogg;
        public Integer sizeApe;
        public Integer sizeDolby;
        public Integer sizeDts;
        public Integer sizeFlac;
        public Integer sizeHires;
        public List<Integer> sizeNew = new ArrayList<Integer>();
        public Integer sizeTry;
        public Integer tryBegin;
        public Integer tryEnd;
        public String url;

    }


    public class Gedantip {

        public Integer tab;
        public String tip;

    }

    @Data
    public class Grp {

        public Integer act;
        public Action__1 action;
        public Album__2 album;
        public Integer bpm;
        public String content;
        public String desc;
        public String descHilight;
        public String docid;
        public Integer eq;
        public String es;
        public File__1 file;
        public Integer fnote;
        public Integer genre;
        public List<Object> grp = new ArrayList<Object>();
        public Hotness hotness;
        public String href3;
        public Integer id;
        public Integer indexAlbum;
        public Integer indexCd;
        public Integer interval;
        public Integer isonly;
        public Ksong ksong;
        public String label;
        public Integer language;
        public String lyric;
        public String lyricHilight;
        public String mid;
        public Mv__1 mv;
        public String name;
        public Integer newStatus;
        public Integer ov;
        public Pay pay;
        public Integer protect;
        public Integer sa;
        public List<Singer__1> singer = new ArrayList<Singer__1>();
        public Integer status;
        public String subtitle;
        public Integer tag;
        public Integer tid;
        public String timePublic;
        public String title;
        public String titleHilight;
        public Integer type;
        public String url;
        public Integer version;
        public Volume volume;
        public List<String> vs = new ArrayList<String>();
    }

    @Data
    public static class Hotness {
        public String desc;
        public String iconUrl;
        public Integer jumpType;
        public String jumpUrl;
    }

    @Data
    public static class Hotness__1 {

        public String desc;
        public String iconUrl;
        public Integer jumpType;
        public String jumpUrl;


    }

    @Data
    public class Item {

        public Integer id;
        public String mid;
        public String name;

    }


    public class Item__1 {

        public Integer id;
        public String mid;
        public String name;

    }


    public class Ksong {

        public Integer id;
        public String mid;

    }


    public class Ksong__1 {

        public Integer id;
        public String mid;

    }


    @Data
    public static class ResList {

        public Integer act;
        public Action action;
        public Album__1 album;
        public Integer bpm;
        public String content;
        public String desc;
        public String descHilight;
        public String docid;
        public Integer eq;
        public String es;
        public File file;
        public Integer fnote;
        public Integer genre;
        public java.util.List<Grp> grp = new ArrayList<Grp>();
        public Hotness__1 hotness;
        public String href3;
        public Integer id;
        public Integer indexAlbum;
        public Integer indexCd;
        public Integer interval;
        public Integer isonly;
        public Ksong__1 ksong;
        public String label;
        public Integer language;
        public String lyric;
        public String lyricHilight;
        public String mid;
        public Mv__2 mv;
        public String name;
        public Integer newStatus;
        public Integer ov;
        public Pay__1 pay;
        public Integer protect;
        public Integer sa;
        public java.util.List<Singer__2> singer = new ArrayList<Singer__2>();
        public Integer status;
        public String subtitle;
        public Integer tag;
        public Integer tid;
        public String timePublic;
        public String title;
        public String titleHilight;
        public Integer type;
        public String url;
        public Integer version;
        public Volume__1 volume;
        public java.util.List<String> vs = new ArrayList<String>();
    }


    @Data
    public static class List__1 {

        public AlbumList albumList;
        public CustomInfo customInfo;
        public String desciption;
        public String docid;
        public String id;
        public String jumpurl;
        public String mid;
        public String pic;
        public String publishDate;
        public String title;
        public TrackList trackList;
        public Integer type;
        public String vid;
        public Integer videoType;

    }

    @Data
    public class Meta {

        public String cid;
        public Integer curpage;
        public String dir;
        public List<Object> displayOrder = new ArrayList<Object>();
        public Integer ein;
        public Integer estimateSum;
        public String expid;
        public Integer isFilter;
        public NextPageStart nextPageStart;
        public Integer nextpage;
        public Integer perpage;
        public String query;
        public Integer resultTrustworthy;
        public Integer ret;
        public Integer safetyType;
        public String safetyUrl;
        public String searchid;
        public String sid;
        public Integer sin;
        public Integer sum;
        public List<Object> tabList = new ArrayList<Object>();
        public String uid;
        public Integer v;

    }

    @Data
    public class Mv {

        public List<Object> list = new ArrayList<Object>();

    }


    public class Mv__1 {

        public Integer id;
        public String name;
        public String title;
        public String vid;
        public Integer vt;

    }


    public class Mv__2 {

        public Integer id;
        public String name;
        public String title;
        public String vid;
        public Integer vt;

    }


    public class NextPageStart {

    }


    public class Pay {

        public Integer payDown;
        public Integer payMonth;
        public Integer payPlay;
        public Integer payStatus;
        public Integer priceAlbum;
        public Integer priceTrack;
        public Integer timeFree;

    }


    public class Pay__1 {

        public Integer payDown;
        public Integer payMonth;
        public Integer payPlay;
        public Integer payStatus;
        public Integer priceAlbum;
        public Integer priceTrack;
        public Integer timeFree;

    }


    public class Qc {

        public String firstText;
        public String firstWord;
        public String secondText;
        public String secondWord;
        public Integer type;
        public String word;

    }
    @Data
    public static class Req {

        public Integer code;
        public ResData data;

    }

    public class Singer {
        public List<Object> list = new ArrayList<Object>();
    }


    public class Singer__1 {

        public Integer id;
        public String mid;
        public String name;
        public String pmid;
        public String title;
        public Integer type;
        public Integer uin;

    }

    @Data
    public class Singer__2 {

        public Integer id;
        public String mid;
        public String name;
        public String pmid;
        public String title;
        public Integer type;
        public Integer uin;

    }

    @Data
    public static class Song {
        public java.util.List<ResList> list = new ArrayList<>();
    }

    @Data
    public class Songlist {

        public List<Object> list = new ArrayList<Object>();

    }

    @Data
    public static class TrackList {

        public List<Item__1> items = new ArrayList<Item__1>();

    }


    public static class User {

        public List<Object> list = new ArrayList<Object>();

    }


    public static class Volume {

        public Double gain;
        public Double lra;
        public Integer peak;

    }

    @Data
    public static class Volume__1 {

        public Double gain;
        public Double lra;
        public Integer peak;

    }

    @Data
    public static class Zhida {

        public List<List__1> list = new ArrayList<List__1>();

    }
}
